#include<bits/stdc++.h>
using namespace std;
const int mod=998244353;
void add(int &a,int b){
    a=(a+b>=mod?a+b-mod:a+b);
}
int qpow(int a,int b){
    int r=1;
    while(b){
        if(b&1)r=1ll*r*a%mod;
        a=1ll*a*a%mod;
        b>>=1;
    }
    return r;
}
const int N=100;
int n,m,k,A,B;
int p[N];
int t[N*2][N];
int ans=0;
int f[N*2][N*N],ca[N*2],cb[N*2];
int find(int kk,int x){
    if(f[kk][x]==x)return x;
    return f[kk][x]=find(kk,f[kk][x]);
}
int cal(int x,int y){
    if(x>y)swap(x,y);
    return x*n+y-n;
}
void dfs(int kk,int v){
    if(kk>k){
        int res=1ll*v*qpow(A,ca[k])%mod*qpow(B,cb[k])%mod;
        add(ans,res);
        return;
    }
    for(int i=1;i<=n;i++)
        for(int j=i;j<=n;j++)
            f[kk][cal(i,j)]=f[kk-1][cal(i,j)];
    ca[kk]=ca[kk-1],cb[kk]=cb[kk-1];
    if(ca[kk]==1&&cb[kk]==1)return;
    dfs(kk+1,v);
    for(int i=1;i<=n;i++){
        int x=cal(i,i),y=cal(t[kk][i],t[kk][i]);
        x=find(kk,x),y=find(kk,y);
        if(x!=y){
            ca[kk]--;
            f[kk][y]=x;
        }
    }
    for(int i=1;i<=n;i++){
        for(int j=i+1;j<=n;j++){
            int x=cal(i,j),y=cal(t[kk][i],t[kk][j]);
            x=find(kk,x),y=find(kk,y);
            if(x!=y){
                cb[kk]--;
                f[kk][y]=x;
            }
        }
    }
    dfs(kk+1,mod-v);
}
int main(){
    ios::sync_with_stdio(0);
    cin.tie(0),cout.tie(0);
    freopen("clown.in","r",stdin);
    freopen("clown.out","w",stdout);
    cin>>m;
    n=1;
    for(int i=1;i<=m;i++)cin>>p[i],n*=p[i];
    cin>>A>>B;
    A%=mod,B%=mod;
    sort(p+1,p+m+1);
    for(int i=1;i<=m;i++){
        if(p[i]==p[i-1])continue;
        int d=n/p[i];
        k++;
        for(int j=1;j<=n;j++)t[k][j]=(j+d-1)%n+1;
    }
    if(n&1){
        for(int i=1;i<=n;i++){
            int d=i*2;
            k++;
            for(int j=1;j<=n;j++)t[k][j]=(d+n-j-1)%n+1;
        }
    }
    else{
        for(int i=1;i<=n/2;i++){
            int d=i*2;
            k++;
            for(int j=1;j<=n;j++)t[k][j]=(d+n-j-1)%n+1;
            d++;
            k++;
            for(int j=1;j<=n;j++)t[k][j]=(d+n-j-1)%n+1;
        }
    }
    for(int i=1;i<=n;i++)
        for(int j=i;j<=n;j++)
            f[0][cal(i,j)]=cal(i,j);
    ca[0]=n;
    cb[0]=n*(n-1)/2;
    dfs(1,1);
    cout<<ans;
    return 0;
}
